Before the second shuttle, I would like to investigate why these antenna violations occur. This can be either a limitation of OpenROAD or a misconfiguration in LibreLane. I will need to compare this with ORFS to see if it produces fewer or no antenna violations when using the open source PDKs.
A small number of low-ratio antenna violations will most likely not cause any problems. Tiny Tapeout has been doing this from the start.
Nevertheless, there are a few things you can do to reduce the antenna violations.
1. You can increase the number of antenna insertion iterations and the margin to overfix them.
These are the default values:
GRT_ANTENNA_ITERS: 3
GRT_ANTENNA_MARGIN: 10 # %
2. You can manually insert antenna diodes.
# https://librelane.readthedocs.io/en/latest/reference/api/steps/index.html#librelane.steps.ECODiode
INSERT_ECO_DIODES:
- target: "bidir[0].pad/A"
- target: "bidir[1].pad/A"
For this to take effect, you also need to add the Odb.InsertECODiodes step to the flow.
meta:
version: 3
flow: Chip
substituting_steps:
...
+OpenROAD.GlobalRouting: Odb.InsertECODiodes
...
(or after detailed routing)
...
+OpenROAD.DetailedRouting: Odb.InsertECODiodes
...